home *** CD-ROM | disk | FTP | other *** search
- ; $$TABS=8
-
- include "demo.i"
- sin::
- ; input d0=angle output d0=sin(d0)
- ; trashes d1/d2,a0
- clr d2
- move.b d0,d2
- lsr #8,d0
- add d0,d0
- lea sin_table(pc),a0
- move 2(a0,d0.w),d1
- move 0(a0,d0.w),d0
- sub d0,d1
- muls d2,d1
- asr.l #8,d1
- add d1,d0
- rts
- cos::
- ; input d0=angle output d0=cos(d0)
- ; trashes d1/d2,a0
- clr d2
- move.b d0,d2
- lsr #8,d0
- add d0,d0
- lea sin_table(pc),a0
- move 2(a0,d0.w),d1
- move 0(a0,d0.w),d0
- sub d0,d1
- muls d2,d1
- asr.l #8,d1
- add d1,d0
- rts
-
-
- sincos::
- ; input d0=angle -32768 to 32767
- ; output d0=sin d1=cosine
- ; uses interpolation
- ; trashes d0,a0,d1,d2,d3
- move d0,d2
- and #$ff,d2
- lsr #8,d0
- add d0,d0
- lea cos_table(pc),a0
- move 0(a0,d0.w),d1
- move 2(a0,d0.w),d3
- sub d1,d3
- muls d2,d3
- asr.l #8,d3
- add d3,d1
-
- lea sin_table(pc),a0
- move 2(a0,d0.w),d3
- move 0(a0,d0.w),d0
- sub d0,d3
- muls d2,d3
- asr.l #8,d3
- add d3,d0
- rts
-
- fast_sincos::
- ; input d0=angle -32768 to 32767
- ; output d0=sin d1=cosine
- ; no interpolation
- ; trashes d0,a0,d1
- lsr #8,d0
- add d0,d0
- lea cos_table(pc),a0
- move 0(a0,d0.w),d1
- lea sin_table(pc),a0
- move 0(a0,d0.w),d0
- rts
-
-
-
- sin_table dc.w 0
- dc.w 804
- dc.w 1608
- dc.w 2411
- dc.w 3212
- dc.w 4011
- dc.w 4808
- dc.w 5602
- dc.w 6393
- dc.w 7180
- dc.w 7962
- dc.w 8740
- dc.w 9512
- dc.w 10279
- dc.w 11039
- dc.w 11793
- dc.w 12540
- dc.w 13279
- dc.w 14010
- dc.w 14733
- dc.w 15447
- dc.w 16151
- dc.w 16846
- dc.w 17531
- dc.w 18205
- dc.w 18868
- dc.w 19520
- dc.w 20160
- dc.w 20788
- dc.w 21403
- dc.w 22006
- dc.w 22595
- dc.w 23170
- dc.w 23732
- dc.w 24279
- dc.w 24812
- dc.w 25330
- dc.w 25833
- dc.w 26320
- dc.w 26791
- dc.w 27246
- dc.w 27684
- dc.w 28106
- dc.w 28511
- dc.w 28899
- dc.w 29269
- dc.w 29622
- dc.w 29957
- dc.w 30274
- dc.w 30572
- dc.w 30853
- dc.w 31114
- dc.w 31357
- dc.w 31581
- dc.w 31786
- dc.w 31972
- dc.w 32138
- dc.w 32286
- dc.w 32413
- dc.w 32522
- dc.w 32610
- dc.w 32679
- dc.w 32729
- dc.w 32758
- cos_table dc.w 32767
- dc.w 32758
- dc.w 32729
- dc.w 32679
- dc.w 32610
- dc.w 32522
- dc.w 32413
- dc.w 32286
- dc.w 32138
- dc.w 31972
- dc.w 31786
- dc.w 31581
- dc.w 31357
- dc.w 31114
- dc.w 30853
- dc.w 30572
- dc.w 30274
- dc.w 29957
- dc.w 29622
- dc.w 29269
- dc.w 28899
- dc.w 28511
- dc.w 28106
- dc.w 27684
- dc.w 27246
- dc.w 26791
- dc.w 26320
- dc.w 25833
- dc.w 25330
- dc.w 24812
- dc.w 24279
- dc.w 23732
- dc.w 23170
- dc.w 22595
- dc.w 22006
- dc.w 21403
- dc.w 20788
- dc.w 20160
- dc.w 19520
- dc.w 18868
- dc.w 18205
- dc.w 17531
- dc.w 16846
- dc.w 16151
- dc.w 15447
- dc.w 14733
- dc.w 14010
- dc.w 13279
- dc.w 12540
- dc.w 11793
- dc.w 11039
- dc.w 10279
- dc.w 9512
- dc.w 8740
- dc.w 7962
- dc.w 7180
- dc.w 6393
- dc.w 5602
- dc.w 4808
- dc.w 4011
- dc.w 3212
- dc.w 2411
- dc.w 1608
- dc.w 804
- dc.w 0
- dc.w -804
- dc.w -1608
- dc.w -2411
- dc.w -3212
- dc.w -4011
- dc.w -4808
- dc.w -5602
- dc.w -6393
- dc.w -7180
- dc.w -7962
- dc.w -8740
- dc.w -9512
- dc.w -10279
- dc.w -11039
- dc.w -11793
- dc.w -12540
- dc.w -13279
- dc.w -14010
- dc.w -14733
- dc.w -15447
- dc.w -16151
- dc.w -16846
- dc.w -17531
- dc.w -18205
- dc.w -18868
- dc.w -19520
- dc.w -20160
- dc.w -20788
- dc.w -21403
- dc.w -22006
- dc.w -22595
- dc.w -23170
- dc.w -23732
- dc.w -24279
- dc.w -24812
- dc.w -25330
- dc.w -25833
- dc.w -26320
- dc.w -26791
- dc.w -27246
- dc.w -27684
- dc.w -28106
- dc.w -28511
- dc.w -28899
- dc.w -29269
- dc.w -29622
- dc.w -29957
- dc.w -30274
- dc.w -30572
- dc.w -30853
- dc.w -31114
- dc.w -31357
- dc.w -31581
- dc.w -31786
- dc.w -31972
- dc.w -32138
- dc.w -32286
- dc.w -32413
- dc.w -32522
- dc.w -32610
- dc.w -32679
- dc.w -32729
- dc.w -32758
- dc.w -32767
- dc.w -32758
- dc.w -32729
- dc.w -32679
- dc.w -32610
- dc.w -32522
- dc.w -32413
- dc.w -32286
- dc.w -32138
- dc.w -31972
- dc.w -31786
- dc.w -31581
- dc.w -31357
- dc.w -31114
- dc.w -30853
- dc.w -30572
- dc.w -30274
- dc.w -29957
- dc.w -29622
- dc.w -29269
- dc.w -28899
- dc.w -28511
- dc.w -28106
- dc.w -27684
- dc.w -27246
- dc.w -26791
- dc.w -26320
- dc.w -25833
- dc.w -25330
- dc.w -24812
- dc.w -24279
- dc.w -23732
- dc.w -23170
- dc.w -22595
- dc.w -22006
- dc.w -21403
- dc.w -20788
- dc.w -20160
- dc.w -19520
- dc.w -18868
- dc.w -18205
- dc.w -17531
- dc.w -16846
- dc.w -16151
- dc.w -15447
- dc.w -14733
- dc.w -14010
- dc.w -13279
- dc.w -12540
- dc.w -11793
- dc.w -11039
- dc.w -10279
- dc.w -9512
- dc.w -8740
- dc.w -7962
- dc.w -7180
- dc.w -6393
- dc.w -5602
- dc.w -4808
- dc.w -4011
- dc.w -3212
- dc.w -2411
- dc.w -1608
- dc.w -804
- dc.w 0
- dc.w 804
- dc.w 1608
- dc.w 2411
- dc.w 3212
- dc.w 4011
- dc.w 4808
- dc.w 5602
- dc.w 6393
- dc.w 7180
- dc.w 7962
- dc.w 8740
- dc.w 9512
- dc.w 10279
- dc.w 11039
- dc.w 11793
- dc.w 12540
- dc.w 13279
- dc.w 14010
- dc.w 14733
- dc.w 15447
- dc.w 16151
- dc.w 16846
- dc.w 17531
- dc.w 18205
- dc.w 18868
- dc.w 19520
- dc.w 20160
- dc.w 20788
- dc.w 21403
- dc.w 22006
- dc.w 22595
- dc.w 23170
- dc.w 23732
- dc.w 24279
- dc.w 24812
- dc.w 25330
- dc.w 25833
- dc.w 26320
- dc.w 26791
- dc.w 27246
- dc.w 27684
- dc.w 28106
- dc.w 28511
- dc.w 28899
- dc.w 29269
- dc.w 29622
- dc.w 29957
- dc.w 30274
- dc.w 30572
- dc.w 30853
- dc.w 31114
- dc.w 31357
- dc.w 31581
- dc.w 31786
- dc.w 31972
- dc.w 32138
- dc.w 32286
- dc.w 32413
- dc.w 32522
- dc.w 32610
- dc.w 32679
- dc.w 32729
- dc.w 32758
- dc.w 32767
- dc.w 32767
-
-
-